package cn.wolfcode.wolf2w.service;

import cn.wolfcode.wolf2w.domain.Destination;
import cn.wolfcode.wolf2w.domain.Strategy;
import cn.wolfcode.wolf2w.domain.StrategyCatalog;
import cn.wolfcode.wolf2w.domain.Travel;
import cn.wolfcode.wolf2w.query.DestinationQuery;
import org.springframework.data.domain.Page;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;

public interface IDestinationService {

    void save(Destination destination);

    void delete(String id);

    void update(Destination destination);

    Destination get(String id);

    List<Destination> list();

    // 分页
    Page<Destination> queryForList(DestinationQuery qo);

    // 通过区域id查询目的地
    List<Destination> queryDesByRegId(String rid);

    // 查询挂载目的地所有子目的地
    List<Destination> queryDesByRegIdOnApi(String regionId);

    // 通过父节点id查询对应的子对象
    List<Destination> queryDesByParentId(String parentId);

    // 通过deep查询国家和省份和城市
    List<Destination> getDestByDeep(int deep);

    //
    List<StrategyCatalog> queryCatalogByDestId(String destId);

    // 查询当前目的地下所有的关联攻略,显示点击量前三的攻略文章
    List<Strategy> queryViewunmTop3(String destId);

    // 查询当前目的地下所有的关联游记,显示点击量前三的游记文章
    List<Travel> queryTravelsToViewingTop3(String destId);

    // 通过关键字查询目的地
    Destination queryByName(String keyword);
}
